﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class frmRoles : cGlobal
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LoadRoles();
        }

    }

    private void LoadRoles()
    {
        try
        {

         

            DataSet ds;
            ds = objSeguridad.GetRoles(); 
            if (ds.Tables[0].Rows.Count > 0)
            {
                this.grdRoles.DataSource = ds.Tables[0];
                this.grdRoles.DataBind();
                this.grdRoles.Columns[0].Visible = false;
            }
            else
            {
                objJavaScript.jsAlert("No se encontraron roles creados.", Page);
            }
        }
        catch (Exception ex)
        {
        }
    
    }

    protected void btnNuevo_Click(object sender, ImageClickEventArgs e)
    {

        limpiar();
    }

    protected void grdRoles_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridViewRow gvr = this.grdRoles.Rows[e.NewEditIndex];
        GridView gvRoles = (GridView)gvr.NamingContainer;
        this.hidRol.Value = Server.HtmlDecode(gvr.Cells[0].Text);
        this.TxtRol.Text = Server.HtmlDecode(gvr.Cells[1].Text);
        this.txtObservaciones.Text = Server.HtmlDecode(gvr.Cells[2].Text);
        this.hidRolNuevo.Value = "0";
        this.hidRol.Value = gvRoles.DataKeys[gvr.RowIndex]["ID"].ToString();
    
    }

    protected void btnGuardar_Click(object sender, ImageClickEventArgs e)
    {

        Int16 UserNew;
        UserNew = Convert.ToInt16(this.hidRolNuevo.Value);

        bool val;
        val = validar();
        try
        {

            if (val == true)
            {

                if (UserNew == 1)
                {

                    objSeguridad.ActualizarRol(0, this.TxtRol.Text, this.txtObservaciones.Text);     

                                    
                        objJavaScript.jsAlert("Se creo correctamente el rol. ", Page);
                        limpiar(); 
                        LoadRoles(); 
                    
                }
                else
                {
                    Int16 IdRol;
                    IdRol = Convert.ToInt16(this.hidRol.Value);


                    objSeguridad.ActualizarRol(IdRol, this.TxtRol.Text, this.txtObservaciones.Text);
                    limpiar(); 
                    LoadRoles();
                    objJavaScript.jsAlert("Se actualizo correctamente la información del rol.", Page);
                }


            }
        }
        catch (Exception ex)
        {
            objJavaScript.jsAlert("Ocurrió un error al guardar.", Page);
        }
    
    }

    private bool validar()
    {

        if (string.IsNullOrEmpty(this.TxtRol.Text))
        {
            objJavaScript.jsAlert("Es necesario ingresar el primer nombre del rol.", Page);
            this.TxtRol.Focus();
            return false;
        }



        return true;
    }

    private void limpiar()
    {
        this.TxtRol.Text = "";
        this.txtObservaciones.Text = "";
        this.hidRolNuevo.Value = "1";    
    }
    protected void btnEliminar_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            string resulado;
            resulado = objSeguridad.EliminarRol(Convert.ToInt16(this.hidRol.Value.ToString()));
            LoadRoles(); 
            objJavaScript.jsAlert(resulado, Page);
        }
        catch (Exception ex)
        {
            objJavaScript.jsAlert("Ocurrio un error al eliminar el rol.", Page);
        }
    }
}
